package com.activeMQ.student.queue;

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

/**
 * 队列的消息消费者
 * @date 2020/10/7 14:26
 */
public class TestConsumer {
    //    服务端的ip和端口号
    private static String brokerUrl = "tcp://106.12.51.117:61617";

    //    消息队列的名称
    private static String queueName = "First-Message";

    public static void main(String[] args) throws JMSException {

//        创建ConnectionFactory对象，并且指定服务端的ip和端口号。
        ConnectionFactory factory = new ActiveMQConnectionFactory(brokerUrl);

//        使用factory对象创建一个connection对象
        Connection connection = factory.createConnection();

//        开启连接
        connection.start();

//        创建session对象，第一个参数为是否开启事务，第二个为接收者的签收状态。
        Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);

//        使用session对象创建destination对象
        Queue queue = session.createQueue(queueName);

//        创建消费者对象
        MessageConsumer consumer = session.createConsumer(queue);

//        监听消息（可选参数为等待时间，无参数表示一直等待）
        Message receive = consumer.receive();


        if (receive instanceof TextMessage){
            TextMessage textMessage = (TextMessage) receive;
            System.out.println(textMessage.getText());
        }

//        关机资源
        consumer.close();
        session.close();
        connection.close();

        System.out.println("消息接收成功");
    }

}
